import axios from 'axios'
import {getCookie} from './auth'
import router from '@/router'
let service = axios.create({
    baseURL:'http://localhost:3000/api',
    timeout:3000
})
// 什么是token
// 1.是一个令牌
// 2.客户端用你的账号和密码登录去后台验证
// 3.后台验证成功后会给你生成一个token,然后把token再返回给前台
// 4.前台收到token之后把token存储起来，可以用本地存储 localStroage或者sessionStorage 或者cookie
// 5.前端（客户端）再调用后台接口的时候都要加上token用于后台验证
// 6.如果token过期或者token没传这时候后台会返回一个固定的状态码告诉客户端，
// 客户端针对无token的情况进行重定向或者路由跳转到登录页面或者其他指定的页面

// 请求拦截
// 添加请求拦截器
// 请求拦截是再发送请求之前设置一些标识字段 比如再请求头里设置token用户标识字段
service.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    console.log('config',config)
    // 再请求头里添加标识字段token
    config.headers['hg_token'] = getCookie()
    config.headers['isApp'] = '1'
    return config;
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  });
//   响应拦截器
// 添加响应拦截器
// 针对不同的http状态码做出不同的响应和业务逻辑处理
service.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    console.log('response',response)
    let status = response.data.status
    switch(status){
        case 200:
            return response;
            break
            case 401:
                router.push('/login')
                break
    }
    
  }, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
  });
export default service